/* STANDARD LIBRARY */
#include<cstdio>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<math.h>
#include<ctime>

/* ADDITIONAL LIBRARY */
#include"constants.h" // constants
#include"supToGSL.h"

/* DECLATATIONS */
#ifndef DECLARATIONS_supToYYT
#define DECLARATIONS_supToYYT

class yytFunctions
{
private:
	unsigned int L;
	double sdelta, J, t, U, beta; // parameters
	double BDelta, chi, m, d, mu; // variables
	double n, r, w; // contractions

public:
	yytFunctions(Parameters *par);
	yytFunctions(Parameters *par, Parameters *X0);
	int setPar(Parameters *par);
	int setX0(Parameters *X0);

	// for definitions of functions see supToMain.cpp file
	double gt();
	double gs();
	double dgtdm();
	double dgtdd();
	double dgsdm();
	double dgsdd();
	double gamma(double kx, double ky);
	double eta(double kx, double ky);
	double epsilon(double kx, double ky);
	double BDelta_d();
	double BDelta_af();
};

#endif
